package com.chee.plant.hibernate.dao;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.chee.plant.server.HibernateSessionFactory;

public abstract class BaseHibernateDAO {

	/**
	 * Hibernate添加的通用方法
	 * 
	 * @param item
	 *            实体对象
	 */
	public void save(Object item) {
		// 声明一个事务
		Transaction transaction = null;
		// 获取session
		Session session = HibernateSessionFactory.getSession();
		try {
			// 打开事物
			transaction = session.beginTransaction();
			// 持久化操作
			session.save(item);
			// 提交事务
			transaction.commit();
		} catch (Exception e) {
			if (null != transaction) {
				transaction.rollback();
			}
			e.printStackTrace();
		} finally {
			// 最后关闭session
			HibernateSessionFactory.closeSession();
		}
	}

	/**
	 * hibernate更新的通用方法
	 * 
	 * @param item
	 *            实体对象
	 */
	public void update(Object item) {
		// 声明一个事务
		Transaction transcation = null;
		// 获取session
		Session session = HibernateSessionFactory.getSession();
		try {
			// 打开事务
			transcation = session.beginTransaction();
			// 持久化操作
			session.update(item);
			// 提交事务
			transcation.commit();
		} catch (Exception e) {
			if (null != transcation) {
				transcation.rollback();
			}
			e.printStackTrace();
		} finally {
			// 最后关闭sessioin
			HibernateSessionFactory.closeSession();
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
